package pl.edu.agh.mwo.raportgen;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import csvBuilder.ExportToCsv;
import data.ARecord;
import data.AReport;
import data.Operator;

public class Konsola {
	public static String sciezka;
	public static String raport;
	public static String wyjscieRaportu;

	public static void main(String[] args) throws IOException {
		System.out.println("Witaj w systemie generowania raportu");
		// wybor pliku do przetwarzania
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		System.out.print("Podaj adres pliku .xls:");
		sciezka = in.readLine();

		// rozroznienie czy raport na konsoli czy do pliku csv
		System.out.println("Podaj rodzaj raportu");
		System.out.println("K - konsola, C - plik CSV");
		wyjscieRaportu = in.readLine();
		wyjscieRaportu = wyjscieRaportu.toUpperCase();
		switch (wyjscieRaportu) {
		case "K":

			// generowanie raportu
			// wybor raportu
			System.out.println("Wybierz typ raportu[a,b]");
			raport = in.readLine();
			raport = raport.toUpperCase();

			// przeslanie sciezki
			Operator.sendAddressString(sciezka);

			switch (raport) {
			case "A":
				System.out.println("generowanie raportu a");
				// przeslanie raportu A
				Operator.chooseReportType(raport);
				AReport curAReport = Operator.getCurrentAReport();
				System.out.println("OSOBA\t\tPROJEKT\t\tCZAS PRACY");
				System.out.println("------------------------------------------");
				for (ARecord listaRekordow : curAReport.records) {
					System.out.print(listaRekordow.person.toString());
					System.out.print("\t");
					System.out.print(listaRekordow.project.toString());
					System.out.print("\t");
					float liczba = (float) listaRekordow.totalTime;

					System.out.print(liczba + "h");
					System.out.print("\n");
				}
				break;
			case "B":
				System.out.println("nie ma raportu b, jest tylko a :P");

				break;
			default:
				System.out.println("nie ma takiego raportu");
			}
			break;
		case "C":
			Operator.sendAddressString(sciezka);
			Operator.chooseReportType("A");
			//AReport curAReport = Operator.getCurrentAReport();
			
			AReport CSVReport = Operator.getCurrentAReport();
			ExportToCsv CSVFile = new ExportToCsv("c:/raport.txt",CSVReport);
			CSVFile.zapisz();
			
			System.out.println("wyeksportowano do csv");
			
			break;
		default:
			System.out.println("nie ma takiej opcji");
		}

	}
}